import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import { getToken } from '@/utils/auth'

//import router from '@/router'
// import { getToken, setToken } from '@/utils/auth'
// import * as commom  from '@/config/common'

const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 30000
})

const WHITE_PATH = [
  "/auth/captcha"
]
const LOGIN_PATH = '/oauth/token'

const DEFAULT_TOKEN = 'Basic cWluZ2Zlbmc6MTIzNDU2'

service.interceptors.request.use(
  config => {
    const url = config.url
    if (WHITE_PATH.includes(url)) {
      return config
    }
    config.headers['Authorization'] = url === LOGIN_PATH ? DEFAULT_TOKEN : getToken()
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

service.interceptors.response.use(
  response => {
//     const res = response.data
//     // if the custom code is not 20000, it is judged as an error.
//     if (response.status !== 200) {
//       Message({
//         message: res.message || 'Error',
//         type: 'error',
//         duration: 5 * 1000
//       })

//       if (res.status === 40301) {
//         Message({
//           message: '当前用户无相关操作权限！',
//           type: 'error',
//           duration: 5 * 1000
//         })
//         return Promise.reject('error')
//       }
//       if (res.status === 40001) {
//         Message({
//           message: '账户或密码错误！',
//           type: 'warning'
//         })
//         return Promise.reject('error')
//       }
//       return Promise.reject(new Error(res.message || 'Error'))
//     } else {
//       // console.log("res:",res)
//       // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
//       if (res.status === '401') {
//         // to re-login
//         MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确定登出', {
//           confirmButtonText: '重新登录',
//           // cancelButtonText: '取消',
//           type: 'warning',
//           closeOnClickModal:false,
//           showClose:false,
//         }).then(() => {
//           store.dispatch('user/resetToken').then(() => {
//             location.reload();
//           })
//         });
//         return "";
//       }
//       if (res.status == 403) {
//         // 未登录
//         console.log('未登录授权')
//         return router.push('/login')
//       }
// /*      if(res.code !=='0') {
//         Message({
//           message: res.message || 'Error',
//           type: 'error',
//           duration: 5 * 1000
//         })
//         return Promise.reject(new Error(res.message || 'Error'))
//       }*/
// /*
//       // 判断响应头中是否存在token
//       if (response.headers.bxjtoken) {
//         setToken(response.headers.bxjtoken)
//       }*/
//       return res
//     }
    return response.data
  },
  error => {
    Message({
      message: error.response.data.msg,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)
export default service
